package top.mcwebsite.playandroid.business.home.impl.vm

import top.mcwebsite.playandroid.business.home.impl.MainTabItem
import top.mcwebsite.playandroid.lib.mvi.base.IIntent
import top.mcwebsite.playandroid.lib.mvi.base.IUiEffect
import top.mcwebsite.playandroid.lib.mvi.base.IUiState

data class MainUiState(
    val message: String = "",
    val currentTab: MainTabItem = MainTabItem.Home
) : IUiState

sealed interface MainIntent : IIntent {
    data object GoMessageIntent : MainIntent
    data object GoSearchIntent : MainIntent

    data class OnTabClickIntent(val mainTabItem: MainTabItem) : MainIntent

    data class OnHorizontalScrolledIntent(val mainTabItem: MainTabItem) : MainIntent
}

sealed interface MainUiEffect : IUiEffect {
    data object GoNotificationUiEffect : MainUiEffect
    data object GoSearchUiEffect : MainUiEffect

    data object NavigationToLoginUiEffect : MainUiEffect
}